A Statistical Analysis of Biomedical CVD Samples

Authors

SIDs: XX

Client: XX

Published

October 25, 2025

Code: Setup
library(tidyverse)
library(kableExtra)
library(rstatix)
library(ggpubr)
library(knitr)
library(broom)
library(DT)
library(janitor)
library(emmeans)
library(tippy)
library(ggfortify)
library(lmerTest)

orange = "#d85f33"
lightorange = "#fcbaa2"

tippy::tippy_this(elementId = "power", 
                  tooltip = "The ability for a statistical test to detect a significant result, given the significant result actually exists.")
Code: Setup
tippy::tippy_this(elementId = "indep", 
                  tooltip = "The values of one datapoint (ROI) does not depend on any other datapoint (any other ROI).")
Code: Setup
tippy::tippy_this(elementId = "homoskedasticity", tooltip = "The variance of an error term or residual is independent.")

1 Executive Summary

The client presents a study investigating cellular phenotypes present in two cardiovascular disease Aetiologies, Dilated Cardiomyopathy (DCM) and Ischemic Cardiomyopathy (ICM). Based on a sample of cellular marking results from 16 patients (8 within each Aetiology) and a conversation with the client, three key goals were identified. Using the proportion of phenotype cells in a given ROI, this statistical investigation found the following results for each goal:

  1. Compare cellular phenotypes present with different Fibrotic Zones within ICM patients and within DCM patients.

    Within each Aetiology, the following cellular phenotypes demonstrated a significant difference in phenotype proportion between Fibrotic zones:

    • ICM: C1, C2b, C3a, CD45RO, Fib2, Fib3, Fibrocyte2, M2, PopSMA+Fx13a+, ResMac, SMA1, SMA3, C2a, Activated Th and SMA2

    • DCM: C1, C2a, CD45RO, Fib3, M2, PopS100+, PopSMA+Fx13a+, ResMac, SMA1, C4, LymphEndo, SMA3 and Mast

  2. Compare cellular phenotypes present within different Fibrotic Zones between ICM and DCM patients.

    For the IF Fibrotic Zone, mean phenotype proportion was significantly different between ICM and DCM samples within M2, LymphEndo, Fib3 and C3b phenotypes. In the RF Fibrotic Zone, average phenotype proportion was significantly different for Fib3. LymphEndo and C3b phenotypes.

  3. Compare the relationship between phenotype abundance and Fibrosis score within ICM and DCM patients.

    The relationship between phenotype proportion and Fibrosis Score was significant for the following phenotypes within each aetiology:

    • ICM: Positive Relationship: C1, C2b, C3a, Fib1 and C2a; Negative Relationship: Neutrophil1

    • DCM: Positive Relationship: C1, C2a, C3a, Fib1, C2b, C4 and Mast; Negative Relationship: M2

2 Background

Cardiovascular disease (CVD) is a leading cause of death and disability worldwide. To diagnose and combat CVD, the client has designed a 38-parameter panel of antibodies for single-cell expression profiling and spatial mapping of the myocardial microenvironment. This process was aided by machine learning tools which have been optimised to the topology of the human heart. The data the client has collected has been sourced from 16 total patients, and was collected from multiple physiological zones within the myocardium. These patients all have experienced heart failure, derived from either Dilated Cardiomyopathy (DCM) or Ischemic Cardiomyopathy (ICM).

ICM involves left ventricle dilation caused by vessel disease, while DCM is left ventricle dilation caused by a non-vessel disease, and is influenced by genetics and excessive alcohol consumption. Collagen within the heart is known as scar tissue, while myocardium represents healthy muscle tissue. This distinction is vital in determining the Fibrotic Zone of a tissue sample. Fibrotic Zone will be addressed further in depth in the following sections. Four different Fibrotic Zones have been identified; Remote, IF, RF and RFC. These correspond to an increasing abundance of fibrotic tissue with a sample.

3 Goals of Analysis

Through analysis of the client’s background information, the client consultation, and the client’s data, the consulting team identified 3 key goals:

3.1 Key Goal 1

Compare the proportion of cellular phenotypes present with different Fibrotic Zones within ICM patients and within DCM patients.

3.2 Key Goal 2

Compare the proportion of cellular phenotypes present within different Fibrotic Zones between ICM and DCM patients.

3.3 Key Goal 3

Compare the relationship between phenotype abundance and fibrosis score within DCM and ICM patients.

4 Datasets and Considerations

4.1 Datasets

The datasets provided by the client represent heart samples from 16 patients, 8 with ICM and 8 with DCM. The data was compiled by our client using machine learning techniques catered to her research goals. There are two datasets utilized within this report: a set referencing sample and area information and a set compiling data on single cells.

The dataset compiling sample and area information is composed of 8 columns:

ROI Data Column Summary
  • ROI: Region of interest

  • Sample: Specifies the patient the sample is pulled from

  • Group: Denotes the zone of the sample, as well as the sample’s disease

  • Batch: Denotes the batch associated with the sample

  • Aetiology: Whether the sample is associated with a patient with ICM or DCM

  • Scar: Area of scarring

  • Myocardium: Area of myocardium

  • Background: Background area due to imaging gaps, which is ignored in the calculation of the area. Throughout this report, area refers to the sum of the scar area and the myocardium area, with the fibrosis score being the percentage of scar area compared to the total (non-background) area.

The dataset compiling data on single cells has 57 columns:

Single Cell Data Column Summary
  • ROI: Region of Interest

  • ID: The ID number assigned to the cell

  • X: The x-coordinates of the pixel, with a pixel measured in a one micromillimeter by one micromillimeter micron

  • Y: The y-coordinates of of the pixel, with a pixel measured in a one micromillimeter by one micromillimeter micron

  • Area: Area of the pixel

  • Cell Type: A numerical organisation of cells, which is not relevant to the analysis

  • Regions: A numerical organisation of regions, which is not relevant to the analysis

  • Annotated Cell Type: Refers to the type of cell the sample is pulled from, all of which are cells

  • Annotated Region: Whether the single cell is a myocardium cell or a scar cell

  • Markers: Percentage coverage for each type of biological marker within a pixel

  • Annotated Metacluster: Labeling the various cellular phenotypes

  • Sample: Specifies the patient the sample is pulled from

  • Group: Denotes the zone of the sample, as well as the sample’s disease

  • Batch: Denotes the batch associated with the sample

  • Aetiology: Whether the sample is associated with a patient with ICM or DCM

4.2 Considerations

One significant consideration that we had to navigate during this report was the relatively small sample size. There are 16 patients in this dataset, with 92 Regions of Interest in total. Distributing this out per patient, each patient would have approximately 6 ROIs per patient.

Initially, we determined this would be too small a sample size to make a mixed model, which would have required splitting the given data into 16 groups, with one group for each patient. We believed that if we had created a mixed model, the power of the tests would have been too low, resulting in a statistical test that could not effectively detect significant results. However, after consulting with our academic advisor, he assured us that the use of a mixed linear model was appropriate in addressing Key Goals 1 and 3 (Section 3.1 and Section 3.3).

Another consideration was the issue of independence, which is an assumption of many statistical tests. It can be argued that some ROIs are not independent of each other if they come from the same patient. One way to overcome this independence is to use a mixed model, which we applied for Key Goals 1 and 3.

Normality is another assumption of a \(t\)-test. After a visual assessment of the data, we found that there was not enough evidence to conclude that the assumption of normality is violated.

We were concerned about potential issues with homoskedasticity. However, after consulting with our academic lead, we determined that this issue does not affect the results.

We did notice some high leverage points in Neutrophil1 under (Section 5.3). Removing these does alter the results. Therefore these points should be put under careful consideration when interpreting these results.

5 Analysis

Code: Initial Data Cleaning and Transformation
patient_df = read_csv('data/ROI.GROUP.AREA.data.csv') |> clean_names()

# Fibrosis Score Calculation
patient_df = patient_df |> 
  mutate(fibrotic_score = scar/(scar + myocardium)) |> 
  mutate(fibrotic_zone = str_extract(group, "^[^_]*")) |> 
  mutate(fibrotic_zone = factor(fibrotic_zone, 
                                levels=c('Remote', "IF", 'RF', "RFC"))) |> 
  mutate(patient_id = str_extract(sample, "[^_]+$")) |> 
  rename(roi=roi_1)

# Mapping Table between Patients, ROIs and Fibrotic Zone
patient_id_roi_fibrotic_zone_mapping_df = patient_df |> 
  select(patient_id, roi, fibrotic_zone) |> unique()


cell_df = read_csv('data/HFCellPop.csv') |> 
  clean_names()

# Cell counts in each ROI
roi_total_cells_count_df = cell_df |> 
  select(roi) |> 
  group_by(roi) |> 
  summarise(roi_cell_count = n()) |> 
  ungroup()

# Proportion of each Phenotype in each ROI
cell_proportion_df = cell_df |> 
  select(roi, annotated_metacluster, sample, group, aetiology) |> 
  group_by(roi, annotated_metacluster, sample, group, aetiology) |> 
  summarise(phenotype_cell_count = n()) |> 
  ungroup() |> 
  mutate(fibrotic_zone = str_extract(group, "^[^_]*")) |> 
  mutate(fibrotic_zone = factor(fibrotic_zone, 
                                levels=c('Remote', "IF", 'RF', "RFC"))) |> 
  mutate(patient_id = str_extract(sample, "[^_]+$")) |> 
  left_join(roi_total_cells_count_df) |> 
  mutate(phenotype_cell_proportion = phenotype_cell_count/roi_cell_count)

# Simplified dataframe of cell score and cell proportion for ROI 
proportion_score_df = cell_proportion_df |> left_join(patient_df |> select(roi, fibrotic_score, fibrotic_zone))

# ICM only Dataframe 
icm_disease_cell_proportion_df = cell_proportion_df |> filter(aetiology == 'ICM')
annotated_metaclusters = cell_df |> select(annotated_metacluster) |> unique()
rois = icm_disease_cell_proportion_df |> select(roi) |> unique()
icm_df = data.frame(roi=c(), phenotype=c(), phenotype_proportion=c())
# One row per ROI+phenotype pair, with value of phenotype proportion
for (phenotype_loop in as.list(annotated_metaclusters$annotated_metacluster)) {
  for (roi_loop in as.list(rois$roi)) {
    df = icm_disease_cell_proportion_df |> 
      filter(annotated_metacluster == phenotype_loop, roi == roi_loop) |>
      select(phenotype_cell_proportion)
    
    phenotype_proportion_for_roi = df$phenotype_cell_proportion[1]
    icm_df = rbind(icm_df, 
                   data.frame(roi=c(roi_loop), 
                              phenotype=c(phenotype_loop), 
                              phenotype_proportion=c(phenotype_proportion_for_roi)))
  }
}
# Fills in empty rows with 0 (phenotype not present in ROI)
icm_df = icm_df |> replace_na(list(phenotype_proportion=0))
# Adds in patient and Fibrotic Zone info
icm_df = icm_df |> left_join(patient_id_roi_fibrotic_zone_mapping_df)

# DCM only Dataframe
dcm_disease_cell_proportion_df = cell_proportion_df |> filter(aetiology == 'DCM')
rois = dcm_disease_cell_proportion_df |> select(roi) |> unique()
dcm_df = data.frame(roi=c(), phenotype=c(), phenotype_proportion=c())
# One row per ROI+phenotype pair, with value of phenotype proportion
for (phenotype_loop in as.list(annotated_metaclusters$annotated_metacluster)) {
  for (roi_loop in as.list(rois$roi)) {
    df = dcm_disease_cell_proportion_df |> filter(annotated_metacluster == phenotype_loop, roi == roi_loop) |> select(phenotype_cell_proportion)
    dcm_df = rbind(dcm_df, data.frame(roi=c(roi_loop), phenotype=c(phenotype_loop), phenotype_proportion=c(df$phenotype_cell_proportion[1])))
  }
}
# Fills in empty rows with 0 (phenotype not present in ROI)
dcm_df = dcm_df |> replace_na(list(phenotype_proportion=0))
# Adds in patient and Fibrotic Zone info
dcm_df = dcm_df |> left_join(patient_id_roi_fibrotic_zone_mapping_df)

To meet the key goals of this report, we investigated the proportion of cells that a particular phenotype took up within an ROI. If a phenotype was not present in an ROI, it was taken that this phenotype took up \(0\%\) of the ROI. Phenotype proportion within an ROI was defined as follows: \[\text{Phenotype Proportion} = \frac{\text{\# Cells of Given Phenotype}}{\text{\# Cells in the ROI}}\]

For Key Goal 3, We also investigated Fibrosis Scores for ROIs. This is defined as the scarred area divided by the total cell area (not including background from the cellular marker), as below: \[\text{Fibrosis Score} = \frac{\text{Scarred area in cell}}{\text{Total cell area}}\]

5.1 Key Goal 1 Analysis

Key Goal 1: Compare the proportion of cellular phenotypes present with different Fibrotic Zones within ICM patients and within DCM patients.

Statistical Approach: For a given phenotype and a given Aetiology, create two Linear Mixed Models (LMM) to predict Phenotype Proportion. Each model includes the random effect of each patient, to account for the fact that each observation is not independent. One of these models, the ‘full model’ includes the effect of Fibrotic Zone: \[\text{Phenotype Proportion} \sim 1 + \text{Fibrotic Zone} + (1|\text{Patient ID})\]

The other model, the ‘null model’, does not include the effect of Fibrotic Zone: \[\text{Phenotype Proportion} \sim 1 + (1|\text{Patient ID})\]

These two LMMs are compared using ANOVA to determine whether the effect of Fibrotic Zone is significant on the Phenotype Proportion by investigating the difference between the two models. If a result is significant, this means that Phenotype Proportion differs significantly across the Fibrotic Zones within that aetiology. This has been visualised below with a boxplot.

Statistical Assumptions: For an LMM, it is assumed that the data is linearly related and error terms are independent, normally distributed and have constant variance. Visual inspection of the data through exploratory analysis ensured these assumptions were satisfied. In the ANOVA of these two LMMs, the assumptions of independence, normality and homogeneity of variance are met.

Code: Linear Mixed Model ANOVA of Phenotype Abundance throughout Fibrotic Zones per Phenotype
kg1_res_ls = list() #list for all results
kg1_sig_res_ls = list() #list for significant results 

# For each phenotype within each aetiology (ICM or DCM)
for (aetiolog in unique(cell_proportion_df$aetiology)){
  aetiology_df = proportion_score_df[cell_proportion_df$aetiology == aetiolog, ]
  for (phenotype in unique(aetiology_df$annotated_metacluster)){
  phenotype_df = aetiology_df[aetiology_df$annotated_metacluster == phenotype, ]
  if (nrow(phenotype_df) > 1){ #if more than one observation for phenotype and aetiology
    m_full = lmer(phenotype_cell_proportion ~ 1 + fibrotic_zone + (1|patient_id), data = phenotype_df)
    m_null = lmer(phenotype_cell_proportion ~  1 + (1|patient_id), data = phenotype_df) 
    a = anova(m_null, m_full) #compare null (not including fibrotic zone) and full (including fibrotic zone) models by ANOVA
    # Store ANOVA results as dataframe 
    res = a |> as.data.frame() 
    # Side-by-side boxplot
    p = phenotype_df |> ggplot() + 
      aes(x=fibrotic_zone, y=phenotype_cell_proportion) + 
      geom_boxplot() +
      # Individual Data Points
      geom_jitter(size=1, colour=orange, alpha=0.5, height=0, width=0.1) +
      labs(title=paste0(phenotype)) + 
      labs(x="Fibrotic Zone",
           y="Phenotype Proportion") +
      scale_y_continuous(labels = scales::percent) +
      theme(plot.background = element_rect(fill = "#ffffff",
                                           linewidth = 0),
            panel.border = element_rect(colour = "black", 
                                        fill=NA),
            legend.box.background = element_rect(colour = "black"),
            axis.title = element_text(face="bold"), 
            plot.title = element_text(face="bold", 
                                      size = 14, 
                                      hjust = 0.5))
    
    rownames(res) = c("Null Model", "Full Model")
    
    colnames(res) = c("Num. Par.", "AIC", "BIC", "log Lik.", "Deviance", "Chi²", "Df", "Pr(<Chi²)")
    
    # Store ANOVA results table and boxplot in list labelled under Phenotype name
    kg1_res_ls[[paste(aetiolog, phenotype)]] = list(table = kable(res, digits = c(0,1,1,1,1,1,0,4)), plot = p)
    # Add ANOVA results table and boxplot to list for significant results if ANOVA is significant
    if (res$`Pr(<Chi²)` [2] < 0.05){
      kg1_sig_res_ls[[paste(aetiolog, phenotype)]] = list(table = kable(res, digits = c(0,1,1,1,1,2,0,4)), plot = p)
      }
    }
  }
}

kg1_res_ls_icm = kg1_res_ls[grep("ICM", names(kg1_res_ls))] # ICM results list 
kg1_res_ls_dcm = kg1_res_ls[grep("DCM", names(kg1_res_ls))] # DCM results list 

kg1_sig_res_ls_icm = kg1_sig_res_ls[grep("ICM", names(kg1_sig_res_ls))] # ICM significant results list 
kg1_sig_res_ls_dcm = kg1_sig_res_ls[grep("DCM", names(kg1_sig_res_ls))] # DCM significant results list 

5.1.1 Within ICM

Within the ICM Aetiology, the effect of Fibrotic Zone on Phenotype Proportion was significant in the C1, C2b, C3a, CD45RO, Fib2, Fib3, Fibrocyte2, M2, PopSMA+Fx13a+, ResMac, SMA1, SMA3, C2a, Activated Th and SMA2 cellular phenotypes.

These significant results are outputted below. Results for all phenotypes can be found under the ‘All Results’ tab below.

C1

Figure: Side-by-side boxplot of Phenotype Proportion of C1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -90.8 -85.2 48.4 -96.8 NA NA NA
Full Model 6 -109.3 -98.0 60.6 -121.3 24.51 3 0

C2b

Figure: Side-by-side boxplot of Phenotype Proportion of C2b against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C2b
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -255.2 -250.5 130.6 -261.2 NA NA NA
Full Model 6 -267.5 -258.2 139.7 -279.5 18.32 3 4e-04

C3a

Figure: Side-by-side boxplot of Phenotype Proportion of C3a against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C3a
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -118.5 -113.6 62.3 -124.5 NA NA NA
Full Model 6 -125.7 -115.9 68.8 -137.7 13.17 3 0.0043

CD45RO

Figure: Side-by-side boxplot of Phenotype Proportion of CD45RO against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for CD45RO
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -196.0 -190.7 101.0 -202.0 NA NA NA
Full Model 6 -205.9 -195.3 108.9 -217.9 15.87 3 0.0012

Fib2

Figure: Side-by-side boxplot of Phenotype Proportion of Fib2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -128.2 -123.3 67.1 -134.2 NA NA NA
Full Model 6 -131.5 -121.7 71.7 -143.5 9.31 3 0.0255

Fib3

Figure: Side-by-side boxplot of Phenotype Proportion of Fib3 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib3
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -246.2 -241.0 126.1 -252.2 NA NA NA
Full Model 6 -253.7 -243.3 132.9 -265.7 13.56 3 0.0036

Fibrocyte2

Figure: Side-by-side boxplot of Phenotype Proportion of Fibrocyte2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fibrocyte2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -238.9 -233.4 122.5 -244.9 NA NA NA
Full Model 6 -243.6 -232.5 127.8 -255.6 10.69 3 0.0135

M2

Figure: Side-by-side boxplot of Phenotype Proportion of M2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for M2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -200.6 -195.0 103.3 -206.6 NA NA NA
Full Model 6 -206.0 -194.9 109.0 -218.0 11.4 3 0.0097

PopSMA+Fx13a+

Figure: Side-by-side boxplot of Phenotype Proportion of PopSMA+Fx13a+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopSMA+Fx13a+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -213.1 -208.6 109.5 -219.1 NA NA NA
Full Model 6 -230.3 -221.3 121.2 -242.3 23.22 3 0

ResMac

Figure: Side-by-side boxplot of Phenotype Proportion of ResMac against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for ResMac
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -179.0 -173.3 92.5 -185.0 NA NA NA
Full Model 6 -182.9 -171.6 97.5 -194.9 9.95 3 0.019

SMA1

Figure: Side-by-side boxplot of Phenotype Proportion of SMA1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -79.9 -74.2 42.9 -85.9 NA NA NA
Full Model 6 -106.3 -94.9 59.1 -118.3 32.45 3 0

SMA3

Figure: Side-by-side boxplot of Phenotype Proportion of SMA3 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA3
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -91.6 -88.9 48.8 -97.6 NA NA NA
Full Model 6 -97.4 -92.0 54.7 -109.4 11.79 3 0.0081

C2a

Figure: Side-by-side boxplot of Phenotype Proportion of C2a against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C2a
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -68.5 -63.6 37.2 -74.5 NA NA NA
Full Model 6 -85.9 -76.3 49.0 -97.9 23.49 3 0

Activated

Th

Figure: Side-by-side boxplot of Phenotype Proportion of Activated against Fibrotic Zone for ICM ROIs.

Figure: Side-by-side boxplot of Phenotype Proportion of Th against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Activated
ANOVA Summary Table for Th
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -11.2 -13.0 8.6 -17.2 NA NA NA
Full Model 4 -13.6 -16.1 10.8 -21.6 4.45 1 0.0348

SMA2

Figure: Side-by-side boxplot of Phenotype Proportion of SMA2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -67.3 -64.9 36.6 -73.3 NA NA NA
Full Model 6 -73.0 -68.4 42.5 -85.0 11.77 3 0.0082
All results

C1

Figure: Side-by-side boxplot of Phenotype Proportion of C1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -90.8 -85.2 48.4 -96.8 NA NA NA
Full Model 6 -109.3 -98.0 60.6 -121.3 24.5 3 0

C2b

Figure: Side-by-side boxplot of Phenotype Proportion of C2b against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C2b
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -255.2 -250.5 130.6 -261.2 NA NA NA
Full Model 6 -267.5 -258.2 139.7 -279.5 18.3 3 4e-04

C3a

Figure: Side-by-side boxplot of Phenotype Proportion of C3a against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C3a
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -118.5 -113.6 62.3 -124.5 NA NA NA
Full Model 6 -125.7 -115.9 68.8 -137.7 13.2 3 0.0043

C3b

Figure: Side-by-side boxplot of Phenotype Proportion of C3b against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C3b
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -110.7 -106.3 58.4 -116.7 NA NA NA
Full Model 6 -107.9 -99.1 60.0 -119.9 3.2 3 0.3614

C4

Figure: Side-by-side boxplot of Phenotype Proportion of C4 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C4
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -141.0 -136.7 73.5 -147.0 NA NA NA
Full Model 6 -136.2 -127.6 74.1 -148.2 1.1 3 0.774

CD45RO

Figure: Side-by-side boxplot of Phenotype Proportion of CD45RO against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for CD45RO
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -196.0 -190.7 101.0 -202.0 NA NA NA
Full Model 6 -205.9 -195.3 108.9 -217.9 15.9 3 0.0012

CytoT

Figure: Side-by-side boxplot of Phenotype Proportion of CytoT against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for CytoT
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -213.7 -209.8 109.9 -219.7 NA NA NA
Full Model 6 -211.4 -203.6 111.7 -223.4 3.7 3 0.2962

Endo

Figure: Side-by-side boxplot of Phenotype Proportion of Endo against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Endo
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -208.3 -202.6 107.1 -214.3 NA NA NA
Full Model 6 -207.8 -196.4 109.9 -219.8 5.5 3 0.1391

Fib1

Figure: Side-by-side boxplot of Phenotype Proportion of Fib1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -88.5 -82.9 47.3 -94.5 NA NA NA
Full Model 6 -89.9 -78.6 51.0 -101.9 7.4 3 0.0609

Fib2

Figure: Side-by-side boxplot of Phenotype Proportion of Fib2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -128.2 -123.3 67.1 -134.2 NA NA NA
Full Model 6 -131.5 -121.7 71.7 -143.5 9.3 3 0.0255

Fib3

Figure: Side-by-side boxplot of Phenotype Proportion of Fib3 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib3
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -246.2 -241.0 126.1 -252.2 NA NA NA
Full Model 6 -253.7 -243.3 132.9 -265.7 13.6 3 0.0036

Fibrocyte

Figure: Side-by-side boxplot of Phenotype Proportion of Fibrocyte against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fibrocyte
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -101.1 -97.9 53.5 -107.1 NA NA NA
Full Model 5 -97.3 -92.1 53.7 -107.3 0.3 2 0.879

Fibrocyte2

Figure: Side-by-side boxplot of Phenotype Proportion of Fibrocyte2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fibrocyte2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -238.9 -233.4 122.5 -244.9 NA NA NA
Full Model 6 -243.6 -232.5 127.8 -255.6 10.7 3 0.0135

HypoEndo

Figure: Side-by-side boxplot of Phenotype Proportion of HypoEndo against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for HypoEndo
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -163.2 -158.6 84.6 -169.2 NA NA NA
Full Model 6 -161.7 -152.3 86.8 -173.7 4.4 3 0.2182

HypoEndo1

Figure: Side-by-side boxplot of Phenotype Proportion of HypoEndo1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for HypoEndo1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -150.9 -145.5 78.4 -156.9 NA NA NA
Full Model 6 -149.8 -139.1 80.9 -161.8 4.9 3 0.1797

LymphEndo

Figure: Side-by-side boxplot of Phenotype Proportion of LymphEndo against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for LymphEndo
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -137.4 -134.2 71.7 -143.4 NA NA NA
Full Model 5 -135.8 -130.6 72.9 -145.8 2.4 2 0.2959

M2

Figure: Side-by-side boxplot of Phenotype Proportion of M2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for M2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -200.6 -195.0 103.3 -206.6 NA NA NA
Full Model 6 -206.0 -194.9 109.0 -218.0 11.4 3 0.0097

MonMac

Figure: Side-by-side boxplot of Phenotype Proportion of MonMac against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for MonMac
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -59.2 -57.3 32.6 -65.2 NA NA NA
Full Model 5 -55.6 -52.4 32.8 -65.6 0.4 2 0.8296

Neutrophil1

Figure: Side-by-side boxplot of Phenotype Proportion of Neutrophil1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Neutrophil1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -184.1 -179.0 95.0 -190.1 NA NA NA
Full Model 6 -182.5 -172.4 97.2 -194.5 4.4 3 0.2189

Neutrophil2

Figure: Side-by-side boxplot of Phenotype Proportion of Neutrophil2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Neutrophil2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -136.3 -133.3 71.1 -142.3 NA NA NA
Full Model 6 -137.0 -131.1 74.5 -149.0 6.8 3 0.0797

PopS100+

Figure: Side-by-side boxplot of Phenotype Proportion of PopS100+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopS100+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -207.5 -202.0 106.7 -213.5 NA NA NA
Full Model 6 -206.9 -195.9 109.4 -218.9 5.4 3 0.1465

PopSMA+Fx13a+

Figure: Side-by-side boxplot of Phenotype Proportion of PopSMA+Fx13a+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopSMA+Fx13a+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -213.1 -208.6 109.5 -219.1 NA NA NA
Full Model 6 -230.3 -221.3 121.2 -242.3 23.2 3 0

ResMac

Figure: Side-by-side boxplot of Phenotype Proportion of ResMac against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for ResMac
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -179.0 -173.3 92.5 -185.0 NA NA NA
Full Model 6 -182.9 -171.6 97.5 -194.9 10 3 0.019

SMA1

Figure: Side-by-side boxplot of Phenotype Proportion of SMA1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -79.9 -74.2 42.9 -85.9 NA NA NA
Full Model 6 -106.3 -94.9 59.1 -118.3 32.4 3 0

SMA3

Figure: Side-by-side boxplot of Phenotype Proportion of SMA3 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA3
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -91.6 -88.9 48.8 -97.6 NA NA NA
Full Model 6 -97.4 -92.0 54.7 -109.4 11.8 3 0.0081

TReg

Figure: Side-by-side boxplot of Phenotype Proportion of TReg against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for TReg
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -86.6 -85.7 46.3 -92.6 NA NA NA
Full Model 4 -84.8 -83.6 46.4 -92.8 0.3 1 0.6087

Th

Figure: Side-by-side boxplot of Phenotype Proportion of Th against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Th
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -147.1 -144 76.6 -153.1 NA NA NA
Full Model 5 -148.2 -143 79.1 -158.2 5 2 0.0803

pDC

Figure: Side-by-side boxplot of Phenotype Proportion of pDC against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for pDC
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -239.9 -236.1 123.0 -245.9 NA NA NA
Full Model 6 -235.6 -228.1 123.8 -247.6 1.7 3 0.6347

C2a

Figure: Side-by-side boxplot of Phenotype Proportion of C2a against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C2a
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -68.5 -63.6 37.2 -74.5 NA NA NA
Full Model 6 -85.9 -76.3 49.0 -97.9 23.5 3 0

B

Figure: Side-by-side boxplot of Phenotype Proportion of B against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for B
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -103.3 -100.5 54.7 -109.3 NA NA NA
Full Model 5 -100.7 -96.0 55.4 -110.7 1.4 2 0.5

M1

Figure: Side-by-side boxplot of Phenotype Proportion of M1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for M1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -113.6 -111.7 59.8 -119.6 NA NA NA
Full Model 6 -112.1 -108.2 62.0 -124.1 4.4 3 0.217

PopCD45RO+HLADR+

Figure: Side-by-side boxplot of Phenotype Proportion of PopCD45RO+HLADR+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopCD45RO+HLADR+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -83.3 -81.3 44.6 -89.3 NA NA NA
Full Model 5 -82.0 -78.8 46.0 -92.0 2.7 2 0.2569

Activated

Th

Figure: Side-by-side boxplot of Phenotype Proportion of Activated against Fibrotic Zone for ICM ROIs.

Figure: Side-by-side boxplot of Phenotype Proportion of Th against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Activated
ANOVA Summary Table for Th
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -11.2 -13.0 8.6 -17.2 NA NA NA
Full Model 4 -13.6 -16.1 10.8 -21.6 4.5 1 0.0348

Mast

Figure: Side-by-side boxplot of Phenotype Proportion of Mast against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Mast
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -81.7 -81.1 43.8 -87.7 NA NA NA
Full Model 6 -78.7 -77.5 45.4 -90.7 3.1 3 0.3834

SMA2

Figure: Side-by-side boxplot of Phenotype Proportion of SMA2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -67.3 -64.9 36.6 -73.3 NA NA NA
Full Model 6 -73.0 -68.4 42.5 -85.0 11.8 3 0.0082

5.1.2 Within DCM

Within the DCM Aetiology, the effect of Fibrotic Zone on Phenotype Proportion was significant in the C1, C2a, CD45RO, Fib3, M2, PopS100+, PopSMA+Fx13a+, ResMac, SMA1, C4, LymphEndo, SMA3 and Mast cellular phenotypes.

These significant results are outputted below. Results for all phenotypes can be found under the ‘All Results’ tab below.

C1

Figure: Side-by-side boxplot of Phenotype Proportion of C1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -69.4 -64.2 37.7 -75.4 NA NA NA
Full Model 6 -86.2 -75.9 49.1 -98.2 22.82 3 0

C2a

Figure: Side-by-side boxplot of Phenotype Proportion of C2a against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C2a
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -81.1 -76.1 43.6 -87.1 NA NA NA
Full Model 6 -87.6 -77.6 49.8 -99.6 12.45 3 0.006

CD45RO

Figure: Side-by-side boxplot of Phenotype Proportion of CD45RO against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for CD45RO
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -129.5 -124.5 67.8 -135.5 NA NA NA
Full Model 6 -137.3 -127.3 74.6 -149.3 13.75 3 0.0033

Fib3

Figure: Side-by-side boxplot of Phenotype Proportion of Fib3 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib3
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -178.0 -174.5 92.0 -184.0 NA NA NA
Full Model 6 -180.7 -173.7 96.4 -192.7 8.72 3 0.0333

M2

Figure: Side-by-side boxplot of Phenotype Proportion of M2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for M2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -198.1 -192.8 102.1 -204.1 NA NA NA
Full Model 6 -208.9 -198.3 110.5 -220.9 16.78 3 8e-04

PopS100+

Figure: Side-by-side boxplot of Phenotype Proportion of PopS100+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopS100+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -179.8 -174.6 92.9 -185.8 NA NA NA
Full Model 6 -186.5 -176.0 99.2 -198.5 12.62 3 0.0055

PopSMA+Fx13a+

Figure: Side-by-side boxplot of Phenotype Proportion of PopSMA+Fx13a+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopSMA+Fx13a+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -230.0 -225.7 118.0 -236.0 NA NA NA
Full Model 6 -232.2 -223.6 122.1 -244.2 8.16 3 0.0428

ResMac

Figure: Side-by-side boxplot of Phenotype Proportion of ResMac against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for ResMac
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -163.4 -158.1 84.7 -169.4 NA NA NA
Full Model 6 -175.0 -164.4 93.5 -187.0 17.58 3 5e-04

SMA1

Figure: Side-by-side boxplot of Phenotype Proportion of SMA1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -30.6 -25.3 18.3 -36.6 NA NA NA
Full Model 6 -49.0 -38.4 30.5 -61.0 24.37 3 0

C4

Figure: Side-by-side boxplot of Phenotype Proportion of C4 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C4
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -169.4 -167.1 87.7 -175.4 NA NA NA
Full Model 5 -181.7 -177.8 95.8 -191.7 16.28 2 3e-04

LymphEndo

Figure: Side-by-side boxplot of Phenotype Proportion of LymphEndo against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for LymphEndo
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -141.0 -137.1 73.5 -147.0 NA NA NA
Full Model 6 -149.4 -141.6 80.7 -161.4 14.36 3 0.0025

SMA3

Figure: Side-by-side boxplot of Phenotype Proportion of SMA3 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA3
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -85.8 -84.1 45.9 -91.8 NA NA NA
Full Model 5 -90.1 -87.3 50.1 -100.1 8.36 2 0.0153

Mast

Figure: Side-by-side boxplot of Phenotype Proportion of Mast against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Mast
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -86.5 -86.3 46.3 -92.5 NA NA NA
Full Model 6 -97.7 -97.2 54.8 -109.7 17.17 3 7e-04
All results

C1

Figure: Side-by-side boxplot of Phenotype Proportion of C1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -69.4 -64.2 37.7 -75.4 NA NA NA
Full Model 6 -86.2 -75.9 49.1 -98.2 22.8 3 0

C2a

Figure: Side-by-side boxplot of Phenotype Proportion of C2a against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C2a
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -81.1 -76.1 43.6 -87.1 NA NA NA
Full Model 6 -87.6 -77.6 49.8 -99.6 12.5 3 0.006

C3a

Figure: Side-by-side boxplot of Phenotype Proportion of C3a against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C3a
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -116.7 -112.5 61.3 -122.7 NA NA NA
Full Model 6 -117.4 -109.0 64.7 -129.4 6.7 3 0.0805

C3b

Figure: Side-by-side boxplot of Phenotype Proportion of C3b against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C3b
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -156.6 -153.3 81.3 -162.6 NA NA NA
Full Model 6 -154.1 -147.5 83.0 -166.1 3.4 3 0.3285

CD45RO

Figure: Side-by-side boxplot of Phenotype Proportion of CD45RO against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for CD45RO
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -129.5 -124.5 67.8 -135.5 NA NA NA
Full Model 6 -137.3 -127.3 74.6 -149.3 13.8 3 0.0033

CytoT

Figure: Side-by-side boxplot of Phenotype Proportion of CytoT against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for CytoT
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -144.6 -141.8 75.3 -150.6 NA NA NA
Full Model 5 -143.5 -138.8 76.8 -153.5 2.9 2 0.2327

Endo

Figure: Side-by-side boxplot of Phenotype Proportion of Endo against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Endo
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -186.7 -181.5 96.4 -192.7 NA NA NA
Full Model 6 -187.1 -176.5 99.5 -199.1 6.3 3 0.0959

Fib1

Figure: Side-by-side boxplot of Phenotype Proportion of Fib1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -62.5 -57.2 34.2 -68.5 NA NA NA
Full Model 6 -60.6 -50.1 36.3 -72.6 4.2 3 0.2435

Fib2

Figure: Side-by-side boxplot of Phenotype Proportion of Fib2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -130.5 -125.8 68.3 -136.5 NA NA NA
Full Model 6 -127.8 -118.3 69.9 -139.8 3.3 3 0.3544

Fib3

Figure: Side-by-side boxplot of Phenotype Proportion of Fib3 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fib3
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -178.0 -174.5 92.0 -184.0 NA NA NA
Full Model 6 -180.7 -173.7 96.4 -192.7 8.7 3 0.0333

Fibrocyte2

Figure: Side-by-side boxplot of Phenotype Proportion of Fibrocyte2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fibrocyte2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -208.9 -204.0 107.4 -214.9 NA NA NA
Full Model 6 -207.2 -197.3 109.6 -219.2 4.3 3 0.2339

HypoEndo

Figure: Side-by-side boxplot of Phenotype Proportion of HypoEndo against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for HypoEndo
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -171.8 -167.1 88.9 -177.8 NA NA NA
Full Model 6 -169.0 -159.5 90.5 -181.0 3.2 3 0.3639

HypoEndo1

Figure: Side-by-side boxplot of Phenotype Proportion of HypoEndo1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for HypoEndo1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -116.1 -111.1 61.1 -122.1 NA NA NA
Full Model 6 -113.5 -103.4 62.8 -125.5 3.4 3 0.3375

M2

Figure: Side-by-side boxplot of Phenotype Proportion of M2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for M2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -198.1 -192.8 102.1 -204.1 NA NA NA
Full Model 6 -208.9 -198.3 110.5 -220.9 16.8 3 8e-04

Neutrophil1

Figure: Side-by-side boxplot of Phenotype Proportion of Neutrophil1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Neutrophil1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -254.2 -249.3 130.1 -260.2 NA NA NA
Full Model 6 -255.9 -246.3 134.0 -267.9 7.8 3 0.0505

Neutrophil2

Figure: Side-by-side boxplot of Phenotype Proportion of Neutrophil2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Neutrophil2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -154.4 -150.4 80.2 -160.4 NA NA NA
Full Model 6 -150.8 -142.8 81.4 -162.8 2.4 3 0.4953

PopS100+

Figure: Side-by-side boxplot of Phenotype Proportion of PopS100+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopS100+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -179.8 -174.6 92.9 -185.8 NA NA NA
Full Model 6 -186.5 -176.0 99.2 -198.5 12.6 3 0.0055

PopSMA+Fx13a+

Figure: Side-by-side boxplot of Phenotype Proportion of PopSMA+Fx13a+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopSMA+Fx13a+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -230.0 -225.7 118.0 -236.0 NA NA NA
Full Model 6 -232.2 -223.6 122.1 -244.2 8.2 3 0.0428

ResMac

Figure: Side-by-side boxplot of Phenotype Proportion of ResMac against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for ResMac
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -163.4 -158.1 84.7 -169.4 NA NA NA
Full Model 6 -175.0 -164.4 93.5 -187.0 17.6 3 5e-04

SMA1

Figure: Side-by-side boxplot of Phenotype Proportion of SMA1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -30.6 -25.3 18.3 -36.6 NA NA NA
Full Model 6 -49.0 -38.4 30.5 -61.0 24.4 3 0

Th

Figure: Side-by-side boxplot of Phenotype Proportion of Th against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Th
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -75.6 -72.7 40.8 -81.6 NA NA NA
Full Model 5 -74.8 -70.1 42.4 -84.8 3.3 2 0.1934

pDC

Figure: Side-by-side boxplot of Phenotype Proportion of pDC against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for pDC
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -271.3 -267.2 138.7 -277.3 NA NA NA
Full Model 6 -267.4 -259.2 139.7 -279.4 2.1 3 0.5516

B

Figure: Side-by-side boxplot of Phenotype Proportion of B against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for B
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -143.3 -140.8 74.6 -149.3 NA NA NA
Full Model 5 -142.8 -138.6 76.4 -152.8 3.5 2 0.1723

C2b

Figure: Side-by-side boxplot of Phenotype Proportion of C2b against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C2b
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -240.2 -235.4 123.1 -246.2 NA NA NA
Full Model 6 -240.8 -231.2 126.4 -252.8 6.6 3 0.086

Fibrocyte

Figure: Side-by-side boxplot of Phenotype Proportion of Fibrocyte against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Fibrocyte
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -90.2 -90.4 48.1 -96.2 NA NA NA
Full Model 5 -90.0 -90.3 50.0 -100.0 3.8 2 0.1498

PopCD45RO+HLADR+

Figure: Side-by-side boxplot of Phenotype Proportion of PopCD45RO+HLADR+ against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for PopCD45RO+HLADR+
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -90.8 -89.6 48.4 -96.8 NA NA NA
Full Model 5 -91.0 -89.0 50.5 -101.0 4.2 2 0.1205

C4

Figure: Side-by-side boxplot of Phenotype Proportion of C4 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for C4
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -169.4 -167.1 87.7 -175.4 NA NA NA
Full Model 5 -181.7 -177.8 95.8 -191.7 16.3 2 3e-04

LymphEndo

Figure: Side-by-side boxplot of Phenotype Proportion of LymphEndo against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for LymphEndo
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -141.0 -137.1 73.5 -147.0 NA NA NA
Full Model 6 -149.4 -141.6 80.7 -161.4 14.4 3 0.0025

MonMac

Figure: Side-by-side boxplot of Phenotype Proportion of MonMac against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for MonMac
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -124.2 -121.2 65.1 -130.2 NA NA NA
Full Model 6 -121.9 -115.9 66.9 -133.9 3.7 3 0.2978

SMA3

Figure: Side-by-side boxplot of Phenotype Proportion of SMA3 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA3
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -85.8 -84.1 45.9 -91.8 NA NA NA
Full Model 5 -90.1 -87.3 50.1 -100.1 8.4 2 0.0153

TReg

Figure: Side-by-side boxplot of Phenotype Proportion of TReg against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for TReg
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -99.7 -98.2 52.8 -105.7 NA NA NA
Full Model 5 -100.3 -97.9 55.1 -110.3 4.6 2 0.0998

M1

Figure: Side-by-side boxplot of Phenotype Proportion of M1 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for M1
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -124.6 -123.1 65.3 -130.6 NA NA NA
Full Model 5 -124.7 -122.3 67.3 -134.7 4.1 2 0.1295

Activated

Th

Figure: Side-by-side boxplot of Phenotype Proportion of Activated against Fibrotic Zone for ICM ROIs.

Figure: Side-by-side boxplot of Phenotype Proportion of Th against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Activated
ANOVA Summary Table for Th
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -92.1 -91.5 49.1 -98.1 NA NA NA
Full Model 6 -86.9 -85.7 49.5 -98.9 0.8 3 0.8536

Mast

Figure: Side-by-side boxplot of Phenotype Proportion of Mast against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for Mast
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -86.5 -86.3 46.3 -92.5 NA NA NA
Full Model 6 -97.7 -97.2 54.8 -109.7 17.2 3 7e-04

SMA2

Figure: Side-by-side boxplot of Phenotype Proportion of SMA2 against Fibrotic Zone for ICM ROIs.


ANOVA Summary Table for SMA2
Num. Par. AIC BIC log Lik. Deviance Chi² Df Pr(<Chi²)
Null Model 3 -54.3 -52.4 30.1 -60.3 NA NA NA
Full Model 6 -50.8 -47.0 31.4 -62.8 2.5 3 0.4717

5.2 Key Goal 2 Analysis

Key Goal 2: Compare the proportion of cellular phenotypes present within different Fibrotic Zones between ICM and DCM patients.

Statistical Approach: For a given phenotype and a given Fibrotic Zone, use a Welch two-sample \(t\)-test to test if there is a significant difference in mean phenotype proportion between any ICM and DCM ROIs.

To account for the multiple tests being completed, a False Discovery Rate (FDR) p-value correction took place on the test results. This controls the FDR within each Phenotype Group (isolating each Fibrotic Zone). Therefore, a significant adjusted p-value means that mean phenotype proportion is significantly different between aetiologies for that Fibrotic Zone.

Statistical Assumptions: The assumptions of a Welch two-sample \(t\)-test include normality, independence and no outliers in each group. According to the Central Limit Theorem, we consider this data sufficiently normally distributed and do not believe there are sufficient outliers to impact the analysis results. In terms of independence, in this case, we consider separation within each phenotype and aetiology to be sufficient to ensure independence of results.

The results show seven significant results across two Fibrotic Zones (RF and IF) and four different phenotypes (M2, Fib3, LymphEndo and C3b). A significant result indicates that the relative mean phenotype proportion within that Fibrotic Zone is significantly different between the ICM and DCM Aetiologies. These significant results are shown in the table below, with all results available in the drop-down.

Code: Compute differences in phenotype proportion between ICM and DCM patients
between_disease_t = data.frame(matrix(ncol = 4))
colnames(between_disease_t) = c('Phenotype', 'Fibrotic Zone', 'Test Statistic', 'p-value')
metaclusters = unique(cell_proportion_df$annotated_metacluster)

total_tests = 0

dcm_df$aetiology = "DCM"
icm_df$aetiology = "ICM"

fibrotix_zone_list = c('Remote', 'IF', 'RF', 'RFC')

all_roi_df = rbind(dcm_df, icm_df)

# For each phenotype and fibrotic zone 
for (p in 1:length(metaclusters)) {
  phenotype_df = all_roi_df |> filter(phenotype==metaclusters[p])
  for (i in 1:length(fibrotix_zone_list)){
    score_phenotype_df = phenotype_df |> filter(fibrotic_zone == fibrotix_zone_list[i])
    score_phenotype_df_icm = score_phenotype_df |> filter(aetiology == 'ICM')
    score_phenotype_df_dcm = score_phenotype_df |> filter(aetiology == 'DCM')
    # Ensure that there is more than one observation in each aetiology before t test 
    if ((dim(score_phenotype_df_icm)[[1]] > 1) & (dim(score_phenotype_df_dcm)[[1]] > 1)){
      total_tests = total_tests + 1
      t_between = t.test(score_phenotype_df_icm$phenotype_proportion, score_phenotype_df_dcm$phenotype_proportion)
      between_disease_t[nrow(between_disease_t) + 1, ] = c(metaclusters[p], fibrotix_zone_list[i], as.numeric(t_between$statistic), as.numeric(t_between$p.value))
    }
  }
}

between_disease_t$`p-value` = as.numeric(between_disease_t$`p-value`)
between_disease_t$`Test Statistic` = as.numeric(between_disease_t$`Test Statistic`)

# FDR p-value adjustment (for all tests)
between_disease_t$`Adj. p-value (FDR)` = p.adjust(between_disease_t$`p-value`, method = 'fdr')

between_disease_t = na.omit(between_disease_t)

# Find FDR and Bonferroni adjusted p-values for each Phenotype group
between_disease_t = between_disease_t %>% group_by(Phenotype) %>% mutate(`Adj. p-value (FDR) (Within Fibrotic Zone)` = p.adjust(`p-value`, method = 'fdr'), `Adj. p-value (Bonferroni) (Within Fibrotic Zone)` = p.adjust(`p-value`, method = 'bonferroni')) %>% ungroup() 

between_disease_t$`Adj. p-value (FDR) (Within Fibrotic Zone)` = as.numeric(between_disease_t$`Adj. p-value (FDR) (Within Fibrotic Zone)`)
between_disease_t = between_disease_t |> mutate(across(where(is.numeric), round, 4))

# Only include significant (p-value < 0.05) values and order from smallest to largest 
sig_between_disease_t  = between_disease_t |> 
  filter(across(everything(), ~!is.na(.x) & .x != "")) |>
  arrange(`Adj. p-value (FDR) (Within Fibrotic Zone)`) |>
  filter(`Adj. p-value (FDR) (Within Fibrotic Zone)` < 0.05)

# Store results in list for tabset output
kg2list = list()
for (z in unique(sig_between_disease_t$`Fibrotic Zone`)) {
  z_tab = sig_between_disease_t[sig_between_disease_t$`Fibrotic Zone` == z, ]
  
  kg2list[[z]] = list(table = kable(select(z_tab, -c('Adj. p-value (Bonferroni) (Within Fibrotic Zone)'))))
}

IF

Phenotype Fibrotic Zone Test Statistic p-value Adj. p-value (FDR) Adj. p-value (FDR) (Within Fibrotic Zone)
M2 IF -3.3064 0.0023 0.2106 0.0094
LymphEndo IF -3.2690 0.0046 0.2106 0.0159
Fib3 IF 2.8695 0.0103 0.2329 0.0205
C3b IF 2.6192 0.0181 0.3083 0.0363

RF

Phenotype Fibrotic Zone Test Statistic p-value Adj. p-value (FDR) Adj. p-value (FDR) (Within Fibrotic Zone)
Fib3 RF 3.1999 0.0039 0.2106 0.0156
LymphEndo RF -3.4262 0.0079 0.2329 0.0159
C3b RF 2.9386 0.0091 0.2329 0.0363
All results
Code
datatable(between_disease_t |>
            drop_na() |>
           arrange(`Adj. p-value (FDR) (Within Fibrotic Zone)`))

5.3 Key Goal 3 Analysis

Key Goal 3: Compare the relationship between phenotype abundance and fibrosis score within DCM and ICM patients.

Statistical Approach: For a given phenotype and a given Aetiology, fit an LMM regression between phenotype proportion and Fibrosis Score considering the random effects of each patient, to determine if this relationship is significant.

Before investigating the relationship between phenotype abundance and Fibrosis Score, the distribution of Fibrosis Scores within each Fibrotic Zone and Aetiology was explored.

We investigated Fibrosis Score distribution throughout the four Fibrosis Zones (Remote, IF, RF, RFC) both between and within each of the Aetiologies.

Code: Side-by-side boxplots for Fibroitc Score and Fibrotic Zone
patient_df |> ggplot() + 
  aes(x = fibrotic_zone, y = fibrotic_score) +
  geom_boxplot() + 
  # Individual data points to give indication of distribution
  geom_jitter(size=1, colour=orange, alpha=0.5, height=0, width=0.1) +
  labs(x="Fibrotic Zone",
       y="Fibrosis Score",
       title="Summary of Fibrosis Score Distribution") +
  theme(plot.background = element_rect(fill = "#ffffff",
                                       linewidth = 0),
        panel.border = element_rect(colour = "black", 
                                    fill=NA),
        legend.box.background = element_rect(colour = "black"),
        axis.title = element_text(face="bold"), 
        plot.title = element_text(face="bold", 
                                  size = 14, 
                                  hjust = 0.5)) +
  scale_y_continuous(labels = scales::percent) +
  facet_wrap(vars(aetiology))

Side-by-side boxplot of Fibrosis Score against Fibrotic Zone faceted by Aetiology.

Three sets of Welch two-sample \(t\)-tests were conducted. Within each set of tests, a Bonferroni Correction has been used to adjust the \(p\)-values.

Statistical Assumptions: As addressed above, the assumptions for a two-sample Welch \(t\)-Test include independence, no outliers and normality, all of which have been sufficiently met, see (Section 5.2).

Code: Pairwise Welch two-sample t-tests on fibrosis score in different fibrotic zones
dat_icm = patient_df[patient_df$aetiology == 'ICM', ]
dat_dcm = patient_df[patient_df$aetiology == 'DCM', ]

within_icm = data.frame(matrix(ncol = 4))
colnames(within_icm) = c('Fibrotic Zone 1', 
                         'Fibrotic Zone 2', 
                         'Test Statistic', 
                         'p-value') 

within_dcm = data.frame(matrix(ncol = 4))
colnames(within_dcm) = c('Fibrotic Zone 1', 
                         'Fibrotic Zone 2', 
                         'Test Statistic', 
                         'p-value') 

# Testing for significant differences in Fibrosis Score between
# the 4 different fibrotic zones
for (i in 1:(length(fibrotix_zone_list)-1)){
  # Get the data from adjacent fibrotic zones (in terms of level of fibrosis)
  icm_lower = dat_icm[dat_icm$fibrotic_zone == fibrotix_zone_list[i], ]
  icm_upper = dat_icm[dat_icm$fibrotic_zone == fibrotix_zone_list[i+1], ]
  
  # Welch t-test
  t_icm = t.test(icm_lower$fibrotic_score, 
                 icm_upper$fibrotic_score)
  # Saves info to table
  within_icm[i,] = c(fibrotix_zone_list[i], 
                     fibrotix_zone_list[i+1], 
                     as.numeric(t_icm$statistic), 
                     as.numeric(t_icm$p.value))
  
  # Get the data from adjacent fibrotic zones (in terms of level of fibrosis)
  dcm_lower = dat_dcm[dat_dcm$fibrotic_zone == fibrotix_zone_list[i], ]
  dcm_upper = dat_dcm[dat_dcm$fibrotic_zone == fibrotix_zone_list[i+1], ]
  
  # Welch t-test
  t_dcm = t.test(dcm_lower$fibrotic_score, 
                 dcm_upper$fibrotic_score)
  
  # Saves info to table
  within_dcm[i,] = c(fibrotix_zone_list[i], 
                     fibrotix_zone_list[i+1], 
                     as.numeric(t_dcm$statistic), 
                     as.numeric(t_dcm$p.value))
}

within_icm$`p-value` = as.numeric(within_icm$`p-value`)
within_icm$`Test Statistic` = as.numeric(within_icm$`Test Statistic`) |> round(2)

within_dcm$`p-value` = as.numeric(within_dcm$`p-value`)
within_dcm$`Test Statistic` = as.numeric(within_dcm$`Test Statistic`) |> round(2)

# Applying Bonferroni Correction
within_icm = within_icm |> mutate(`Adj. p-value`= round(`p-value`*3,4))
within_dcm = within_dcm |> mutate(`Adj. p-value`= round(`p-value`*3,4))
Code: Welch t-Test of fibrosis score in each fibrotic zone between ICM and DCM patients
between = data.frame(matrix(ncol = 3))
colnames(between) = c('Fibrotic Zone', 'Test Statistic', 'p-value') 

# Testing for significant differences in fibrosis Score between
# Aetiology for the 4 different fibrotic zones
for (i in 1:(length(fibrotix_zone_list))){
  icm_score = dat_icm[dat_icm$fibrotic_zone == fibrotix_zone_list[i], ]
  dcm_score = dat_dcm[dat_dcm$fibrotic_zone == fibrotix_zone_list[i], ]
  
  # Welch t-test
  t_between = t.test(icm_score$fibrotic_score, dcm_score$fibrotic_score)
  
  # Saves info to tabl 
  between[i,] = c(fibrotix_zone_list[i], 
                  as.numeric(t_between$statistic), 
                  as.numeric(t_between$p.value))
}

between$`p-value` = as.numeric(between$`p-value`)
between$`Test Statistic` = as.numeric(between$`Test Statistic`) |> round(2)

# Applying Bonferroni Correction
between = between |> mutate(`Adj. p-value` = 
                            ifelse(`p-value`>0.25, 1,round(`p-value`*4,4)))
kable(within_dcm, digits = 4)
Pairwise Welch t-Test summary table for DCM ROIs
Fibrotic Zone 1 Fibrotic Zone 2 Test Statistic p-value Adj. p-value
Remote IF -5.95 0.0000 0.0001
IF RF -3.90 0.0008 0.0024
RF RFC -3.04 0.0089 0.0267
kable(within_icm, digits = 4)
Pairwise Welch t-Test summary table for ICM ROIs.
Fibrotic Zone 1 Fibrotic Zone 2 Test Statistic p-value Adj. p-value
Remote IF -7.01 0.0000 0.0001
IF RF -6.42 0.0000 0.0000
RF RFC 1.29 0.2139 0.6416
kable(between, digits=4)
Welch t-Test between ICM and DCM ROIs summary table for each Fibroitc Zone.
Fibrotic Zone Test Statistic p-value Adj. p-value
Remote 0.32 0.7563 1.0000
IF 0.39 0.7013 1.0000
RF 2.62 0.0154 0.0616
RFC -2.16 0.0466 0.1862

Within the DCM Aetiology, the average Fibrosis Score increases between each of the Fibrotic Zones, and the difference between each zone is significant (as shown by \(t\)-test results).

Within the ICM Aetiology, average Fibrosis Scores increase from Remote to IF and IF to RF however there is not a significant difference in average Fibrosis Scores between RF and RFC Fibrotic Zones. This is important to consider in further analysis given that the Fibrotic Zone is used as an ordinal measure to categorise the Fibrotic Zone of a Region.

When comparing the average Fibrosis Score for a Fibrotic Zone, there is no significant difference between ICM and DCM patients.

To investigate the insignificant difference in mean between ICM’s RF and RFC Fibrotic Zones, a Two-Way ANOVA was conducted. This was testing whether there was an interaction effect between the disease Aetiology and Fibrotic Zone influencing Fibrosis Score. In other words, this was testing if the relationship between Fibrotic Zone and Fibrosis Score is significantly different in the two Aetiology groups. The test was blocked by Patient ID to reduce individual patient discrepancies (sometimes known as a repeated Two-Sample ANOVA).

Statistical Assumptions: The assumptions for Two-Way ANOVA are: include independence of variables, homoscedasticity and normality. Independence is sufficiently ensured in the use of patient ID as a blocking factor and normality is met by the Central Limit Theorem. Homoscedacity is sufficient for this analysis.

Code: Two-way ANOVA for Interaction Effect between Aetiology and Fibrotic Zone
# Two way ANOVA
anova_df= tidy(aov(fibrotic_score ~ patient_id + aetiology*fibrotic_zone, data=patient_df))

colnames(anova_df) = c("term", "Df", "Sum Sq", "Mean Sq", "F value", "Pr(>F)")

anova_df = anova_df[c("term", "Sum Sq","Df", "F value", "Pr(>F)")] |> 
  mutate(term = str_replace_all(term, "_", " "),
         term = str_replace_all(term, ":", " : "),
         term = tools::toTitleCase(term),
         term = str_replace_all(term, "Id", "ID"),)

colnames(anova_df) = c("", "Sum Sq","Df", "F value", "Pr(>F)")

kable(anova_df, digits=4)
Two-way ANOVA summary table.
Sum Sq Df F value Pr(>F)
Patient ID 1.5290 15 10.0797 0.0000
Fibrotic Zone 1.8179 3 59.9222 0.0000
Aetiology : Fibrotic Zone 0.1065 3 3.5102 0.0196
Residuals 0.7079 70 NA NA
Code: Interaction Effect Plot
# Interaction Effect Plot
emmip(aov(fibrotic_score ~ patient_id + aetiology:fibrotic_zone, data=patient_df), 
      aetiology ~ fibrotic_zone) +
  theme_classic(base_size = 12) +
  labs(x="Fibrotic Zone",
       y="Linear Prediciton",
       title="ANOVA Interaction Effect Plot",
       colour="Aetiology") +
  theme(plot.background = element_rect(fill = "#ffffff",
                                       linewidth = 0),
        panel.border = element_rect(colour = "black", 
                                    fill=NA),
        legend.box.background = element_rect(colour = "black"),
        axis.title = element_text(face="bold"), 
        plot.title = element_text(face="bold", 
                                  size = 14, 
                                  hjust = 0.5))

Interaction effect trace plot for two-way ANOVA.

With a \(p\)-value of 0.0196, this test showed a significant interaction effect. That is, the relationship between Fibrosis Score and Fibrotic Zone is different between ICM and DCM patients. This is demonstrated by the trace plot, showing that this change in the relationship between each Aetiology occurs between the RF and RFC Fibrotic Zones. This may point to the misclassification of some ROI zones, which can be investigated further.

To investigate the relationship between phenotype abundance and Fibrotic Score, a Linear Mixed Model (LMM) was fitted accounting for the random effects of each patient. The associated \(p\)-values of the model’s coefficients were used to calculate significance.

Statistical Assumptions: As for Key Goal 1 (Section 5.1), LMMs assume a linear relationship and independent, normally distributed error terms with constant variance. Again, Visual inspection of the data through exploratory analysis ensured these assumptions have been satisfied.

Code: Linear Mixed Model between phenotype abundance and fibrosis score
res_ls = list()

sig_res_ls = list()
for (aetiolog in unique(proportion_score_df$aetiology)){
  aetiology_df = proportion_score_df[proportion_score_df$aetiology == aetiolog, ]
  for (phenotype in unique(aetiology_df$annotated_metacluster)){
  phenotype_df = aetiology_df[aetiology_df$annotated_metacluster == phenotype, ]
  if (nrow(phenotype_df) > 1){
      m = lmer(phenotype_cell_proportion ~ fibrotic_score + (1|patient_id), data = phenotype_df)
      
      phenotype_df$fit = predict(m)
      
      p = ggplot(phenotype_df) + aes(y=phenotype_cell_proportion, 
                                     x=fibrotic_score, 
                                     colour = patient_id) + 
      geom_smooth(aes(y=fit, group=patient_id), method='lm', se = F) + 
      geom_point() +
      labs(x="Phenotype Proportion",
       y="Fibrosis Score",
       title=paste(phenotype)) +
       theme(plot.background = element_rect(fill = "#ffffff",
                                           linewidth = 0),
             panel.border = element_rect(colour = "black", 
                                        fill=NA),
             legend.box.background = element_rect(colour = "black"),
             axis.title = element_text(face="bold"), 
             plot.title = element_text(face="bold", 
                                      size = 14, 
                                      hjust = 0.5)) +
        labs(colour = "Patient ID")
      res = lmerTest:::get_coefmat(m) |> as.data.frame()
      
      rownames(res) = c("(Intercept)", "Fibrosis Score")
      
      eq = paste0("$$\\text{Prop. ", phenotype, "}= \\beta_{\\text{Patient ID}}", ifelse(res['Fibrosis Score', "Estimate"]>=-0.0005, "+", ""), round(res['Fibrosis Score', "Estimate"], 3), "\\times \\text{Fribrosis Score}$$") 
      
      res_ls[[paste(aetiolog, phenotype)]] = list(table = res,equation = eq)
      sig_res = res[res$`Pr(>|t|)` < 0.05, ]
      if (nrow(sig_res)>1){
        sig_res_ls[[paste(aetiolog, phenotype)]] = list(table = sig_res, equation = eq, plot = p)
      }
    }
  }
}

res_ls_icm = res_ls[grep("ICM", names(res_ls))]  
res_ls_dcm = res_ls[grep("DCM", names(res_ls))] 

sig_res_ls_icm = sig_res_ls[grep("ICM", names(sig_res_ls))]  
sig_res_ls_dcm = sig_res_ls[grep("DCM", names(sig_res_ls))] 

5.3.1 ICM Patients

Within the ICM aetiology, the effect of Fibrosis Score on phenotype proportion was significant, and negative for C1, C2b, C3a, Fib1 and C2a. This effect was significant and positive for Neutrophil1.

C1

Figure: Scatter Plot of Phenotype Proportion of C1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. C1}= \beta_{\text{Patient ID}}-0.294\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.2615 0.0361 16.8846 7.2339 0
Fibrosis Score -0.2943 0.0497 41.1916 -5.9255 0

C2b

Figure: Scatter Plot of Phenotype Proportion of C2b against Fibrosis Score for ICM ROIs.

\[\text{Prop. C2b}= \beta_{\text{Patient ID}}-0.026\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0193 0.0020 33 9.5336 0
Fibrosis Score -0.0259 0.0042 33 -6.1298 0

C3a

Figure: Scatter Plot of Phenotype Proportion of C3a against Fibrosis Score for ICM ROIs.

\[\text{Prop. C3a}= \beta_{\text{Patient ID}}-0.126\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0936 0.0211 20.4828 4.4384 2e-04
Fibrosis Score -0.1264 0.0346 32.2587 -3.6589 9e-04

Fib1

Figure: Scatter Plot of Phenotype Proportion of Fib1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fib1}= \beta_{\text{Patient ID}}-0.143\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.3695 0.0368 33.1957 10.0315 0.0000
Fibrosis Score -0.1432 0.0666 46.7451 -2.1497 0.0368

Neutrophil1

Figure: Scatter Plot of Phenotype Proportion of Neutrophil1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Neutrophil1}= \beta_{\text{Patient ID}}+0.081\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0270 0.0092 25.4786 -2.9389 0.0069
Fibrosis Score 0.0805 0.0176 32.0778 4.5772 0.0001

C2a

Figure: Scatter Plot of Phenotype Proportion of C2a against Fibrosis Score for ICM ROIs.

\[\text{Prop. C2a}= \beta_{\text{Patient ID}}-0.282\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.1886 0.0341 26.5781 5.5250 0
Fibrosis Score -0.2821 0.0575 32.6133 -4.9059 0
All results

C1

NULL
Figure: Scatter Plot of Phenotype Proportion of C1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. C1}= \beta_{\text{Patient ID}}-0.294\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.2615 0.0361 16.8846 7.2339 0
Fibrosis Score -0.2943 0.0497 41.1916 -5.9255 0

C2b

NULL
Figure: Scatter Plot of Phenotype Proportion of C2b against Fibrosis Score for ICM ROIs.

\[\text{Prop. C2b}= \beta_{\text{Patient ID}}-0.026\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0193 0.0020 33 9.5336 0
Fibrosis Score -0.0259 0.0042 33 -6.1298 0

C3a

NULL
Figure: Scatter Plot of Phenotype Proportion of C3a against Fibrosis Score for ICM ROIs.

\[\text{Prop. C3a}= \beta_{\text{Patient ID}}-0.126\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0936 0.0211 20.4828 4.4384 2e-04
Fibrosis Score -0.1264 0.0346 32.2587 -3.6589 9e-04

C3b

NULL
Figure: Scatter Plot of Phenotype Proportion of C3b against Fibrosis Score for ICM ROIs.

\[\text{Prop. C3b}= \beta_{\text{Patient ID}}+0\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0336 0.0217 26.1989 1.5522 0.1326
Fibrosis Score -0.0002 0.0384 27.5266 -0.0053 0.9958

C4

NULL
Figure: Scatter Plot of Phenotype Proportion of C4 against Fibrosis Score for ICM ROIs.

\[\text{Prop. C4}= \beta_{\text{Patient ID}}+0.007\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0085 0.0130 27.1469 0.6559 0.5174
Fibrosis Score 0.0073 0.0253 28.6426 0.2905 0.7735

CD45RO

NULL
Figure: Scatter Plot of Phenotype Proportion of CD45RO against Fibrosis Score for ICM ROIs.

\[\text{Prop. CD45RO}= \beta_{\text{Patient ID}}+0.015\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0145 0.0123 20.3161 1.1829 0.2505
Fibrosis Score 0.0150 0.0176 36.8162 0.8517 0.3999

CytoT

NULL
Figure: Scatter Plot of Phenotype Proportion of CytoT against Fibrosis Score for ICM ROIs.

\[\text{Prop. CytoT}= \beta_{\text{Patient ID}}+0.009\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0008 0.0029 20.5274 -0.2648 0.7938
Fibrosis Score 0.0092 0.0057 21.1693 1.6060 0.1231

Endo

NULL
Figure: Scatter Plot of Phenotype Proportion of Endo against Fibrosis Score for ICM ROIs.

\[\text{Prop. Endo}= \beta_{\text{Patient ID}}+0.019\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0380 0.0127 23.2714 3.0050 0.0063
Fibrosis Score 0.0188 0.0197 44.2865 0.9529 0.3458

Fib1

NULL
Figure: Scatter Plot of Phenotype Proportion of Fib1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fib1}= \beta_{\text{Patient ID}}-0.143\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.3695 0.0368 33.1957 10.0315 0.0000
Fibrosis Score -0.1432 0.0666 46.7451 -2.1497 0.0368

Fib2

NULL
Figure: Scatter Plot of Phenotype Proportion of Fib2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fib2}= \beta_{\text{Patient ID}}+0.116\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0211 0.0288 27.1048 -0.7306 0.4713
Fibrosis Score 0.1164 0.0555 31.2934 2.0988 0.0440

Fib3

NULL
Figure: Scatter Plot of Phenotype Proportion of Fib3 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fib3}= \beta_{\text{Patient ID}}+0.024\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0019 0.0047 33.0982 0.4080 0.6859
Fibrosis Score 0.0238 0.0093 39.7807 2.5454 0.0149

Fibrocyte

NULL
Figure: Scatter Plot of Phenotype Proportion of Fibrocyte against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fibrocyte}= \beta_{\text{Patient ID}}-0.041\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0272 0.0143 16.3754 1.8978 0.0755
Fibrosis Score -0.0406 0.0253 18.9846 -1.6076 0.1244

Fibrocyte2

NULL
Figure: Scatter Plot of Phenotype Proportion of Fibrocyte2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fibrocyte2}= \beta_{\text{Patient ID}}+0.029\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0042 0.0083 29.7887 0.5093 0.6143
Fibrosis Score 0.0295 0.0140 43.9558 2.1052 0.0410

HypoEndo

NULL
Figure: Scatter Plot of Phenotype Proportion of HypoEndo against Fibrosis Score for ICM ROIs.

\[\text{Prop. HypoEndo}= \beta_{\text{Patient ID}}+0.039\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0021 0.0103 23.6431 -0.2045 0.8397
Fibrosis Score 0.0389 0.0191 29.3617 2.0328 0.0512

HypoEndo1

NULL
Figure: Scatter Plot of Phenotype Proportion of HypoEndo1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. HypoEndo1}= \beta_{\text{Patient ID}}+0.068\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0130 0.0184 20.2964 0.7052 0.4887
Fibrosis Score 0.0677 0.0298 40.4841 2.2718 0.0285

LymphEndo

NULL
Figure: Scatter Plot of Phenotype Proportion of LymphEndo against Fibrosis Score for ICM ROIs.

\[\text{Prop. LymphEndo}= \beta_{\text{Patient ID}}+0.019\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0036 0.0066 17.7452 -0.5508 0.5886
Fibrosis Score 0.0194 0.0113 18.9739 1.7105 0.1035

M2

NULL
Figure: Scatter Plot of Phenotype Proportion of M2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. M2}= \beta_{\text{Patient ID}}+0.065\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0014 0.011 25.7092 -0.1295 0.8980
Fibrosis Score 0.0647 0.018 42.7600 3.5855 0.0009

MonMac

NULL
Figure: Scatter Plot of Phenotype Proportion of MonMac against Fibrosis Score for ICM ROIs.

\[\text{Prop. MonMac}= \beta_{\text{Patient ID}}-0.003\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0119 0.0342 7.7606 0.3470 0.7378
Fibrosis Score -0.0025 0.0593 7.8998 -0.0423 0.9673

Neutrophil1

NULL
Figure: Scatter Plot of Phenotype Proportion of Neutrophil1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Neutrophil1}= \beta_{\text{Patient ID}}+0.081\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0270 0.0092 25.4786 -2.9389 0.0069
Fibrosis Score 0.0805 0.0176 32.0778 4.5772 0.0001

Neutrophil2

NULL
Figure: Scatter Plot of Phenotype Proportion of Neutrophil2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Neutrophil2}= \beta_{\text{Patient ID}}+0.003\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0033 0.0061 13.1889 0.5356 0.6012
Fibrosis Score 0.0032 0.0111 14.3103 0.2841 0.7804

PopS100+

NULL
Figure: Scatter Plot of Phenotype Proportion of PopS100+ against Fibrosis Score for ICM ROIs.

\[\text{Prop. PopS100+}= \beta_{\text{Patient ID}}-0.011\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0232 0.0110 28.6068 2.1005 0.0446
Fibrosis Score -0.0110 0.0186 42.5010 -0.5907 0.5578

PopSMA+Fx13a+

NULL
Figure: Scatter Plot of Phenotype Proportion of PopSMA+Fx13a+ against Fibrosis Score for ICM ROIs.

\[\text{Prop. PopSMA+Fx13a+}= \beta_{\text{Patient ID}}+0.009\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0020 0.0051 25.7411 0.3918 0.6984
Fibrosis Score 0.0085 0.0089 30.7895 0.9586 0.3452

ResMac

NULL
Figure: Scatter Plot of Phenotype Proportion of ResMac against Fibrosis Score for ICM ROIs.

\[\text{Prop. ResMac}= \beta_{\text{Patient ID}}+0.103\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0124 0.0122 35.9731 1.0212 0.3140
Fibrosis Score 0.1027 0.0235 46.1118 4.3641 0.0001

SMA1

NULL
Figure: Scatter Plot of Phenotype Proportion of SMA1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. SMA1}= \beta_{\text{Patient ID}}+0.224\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0166 0.0380 36.0229 0.4372 0.6645
Fibrosis Score 0.2244 0.0692 46.8917 3.2416 0.0022

SMA3

NULL
Figure: Scatter Plot of Phenotype Proportion of SMA3 against Fibrosis Score for ICM ROIs.

\[\text{Prop. SMA3}= \beta_{\text{Patient ID}}-0.034\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0302 0.0120 13.6419 2.5218 0.0248
Fibrosis Score -0.0339 0.0219 15.9482 -1.5471 0.1414

TReg

NULL
Figure: Scatter Plot of Phenotype Proportion of TReg against Fibrosis Score for ICM ROIs.

\[\text{Prop. TReg}= \beta_{\text{Patient ID}}-0.015\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0118 0.0060 7.2506 1.9619 0.0891
Fibrosis Score -0.0153 0.0105 7.1527 -1.4593 0.1870

Th

NULL
Figure: Scatter Plot of Phenotype Proportion of Th against Fibrosis Score for ICM ROIs.

\[\text{Prop. Th}= \beta_{\text{Patient ID}}+0.002\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0035 0.0081 18.9245 0.4319 0.6707
Fibrosis Score 0.0018 0.0145 18.9707 0.1273 0.9000

pDC

NULL
Figure: Scatter Plot of Phenotype Proportion of pDC against Fibrosis Score for ICM ROIs.

\[\text{Prop. pDC}= \beta_{\text{Patient ID}}+0.004\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0005 0.0014 24 0.3401 0.7368
Fibrosis Score 0.0037 0.0025 24 1.4737 0.1536

C2a

NULL
Figure: Scatter Plot of Phenotype Proportion of C2a against Fibrosis Score for ICM ROIs.

\[\text{Prop. C2a}= \beta_{\text{Patient ID}}-0.282\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.1886 0.0341 26.5781 5.5250 0
Fibrosis Score -0.2821 0.0575 32.6133 -4.9059 0

B

NULL
Figure: Scatter Plot of Phenotype Proportion of B against Fibrosis Score for ICM ROIs.

\[\text{Prop. B}= \beta_{\text{Patient ID}}+0.018\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0036 0.0137 15.1840 -0.2652 0.7944
Fibrosis Score 0.0182 0.0267 14.7231 0.6796 0.5073

M1

NULL
Figure: Scatter Plot of Phenotype Proportion of M1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. M1}= \beta_{\text{Patient ID}}-0.001\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0044 0.0026 7.9386 1.7137 0.1252
Fibrosis Score -0.0011 0.0048 9.6178 -0.2238 0.8276

PopCD45RO+HLADR+

NULL
Figure: Scatter Plot of Phenotype Proportion of PopCD45RO+HLADR+ against Fibrosis Score for ICM ROIs.

\[\text{Prop. PopCD45RO+HLADR+}= \beta_{\text{Patient ID}}+0.009\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0010 0.0090 11.1500 0.1166 0.9092
Fibrosis Score 0.0091 0.0169 10.3971 0.5369 0.6027

Activated

Th

NULL
Figure: Scatter Plot of Phenotype Proportion of Activated against Fibrosis Score for ICM ROIs.
Figure: Scatter Plot of Phenotype Proportion of Th against Fibrosis Score for ICM ROIs.

\[\text{Prop. Activated Th}= \beta_{\text{Patient ID}}+1.115\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.6093 0.4689 2 -1.2995 0.3234
Fibrosis Score 1.1147 0.8189 2 1.3612 0.3065

Mast

NULL
Figure: Scatter Plot of Phenotype Proportion of Mast against Fibrosis Score for ICM ROIs.

\[\text{Prop. Mast}= \beta_{\text{Patient ID}}-0.004\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0039 0.0019 5.3626 2.1109 0.0848
Fibrosis Score -0.0037 0.0035 6.8168 -1.0472 0.3307

SMA2

NULL
Figure: Scatter Plot of Phenotype Proportion of SMA2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. SMA2}= \beta_{\text{Patient ID}}+0.086\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0139 0.0137 12.5248 -1.0118 0.3308
Fibrosis Score 0.0858 0.0292 13.5451 2.9338 0.0112

5.3.2 DCM Patients

Within the DCM aetiology, the effect of fibrosis score on phenotype proportion was significant and negative for C1, C2a, C3a, Fib1, C2b, C4 and Mast. This effect was significant and positive for M2.

C1

Figure: Scatter Plot of Phenotype Proportion of C1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. C1}= \beta_{\text{Patient ID}}-0.29\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.2304 0.0339 23.8591 6.8067 0e+00
Fibrosis Score -0.2901 0.0650 38.8035 -4.4610 1e-04

C2a

Figure: Scatter Plot of Phenotype Proportion of C2a against Fibrosis Score for ICM ROIs.

\[\text{Prop. C2a}= \beta_{\text{Patient ID}}-0.29\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.1999 0.0322 16.2967 6.1999 0
Fibrosis Score -0.2902 0.0519 33.6146 -5.5864 0

C3a

Figure: Scatter Plot of Phenotype Proportion of C3a against Fibrosis Score for ICM ROIs.

\[\text{Prop. C3a}= \beta_{\text{Patient ID}}-0.064\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0449 0.0150 17.6980 2.9886 0.0080
Fibrosis Score -0.0644 0.0297 27.5489 -2.1654 0.0392

Fib1

Figure: Scatter Plot of Phenotype Proportion of Fib1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fib1}= \beta_{\text{Patient ID}}-0.199\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.4077 0.0383 25.9539 10.6457 0.00
Fibrosis Score -0.1995 0.0736 39.0044 -2.7093 0.01

M2

Figure: Scatter Plot of Phenotype Proportion of M2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. M2}= \beta_{\text{Patient ID}}+0.046\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0168 0.0067 21.7548 2.4929 0.0208
Fibrosis Score 0.0455 0.0135 21.6309 3.3658 0.0028

C2b

Figure: Scatter Plot of Phenotype Proportion of C2b against Fibrosis Score for ICM ROIs.

\[\text{Prop. C2b}= \beta_{\text{Patient ID}}-0.027\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0179 0.0031 28.3249 5.8692 0e+00
Fibrosis Score -0.0272 0.0070 34.6510 -3.8817 4e-04

C4

Figure: Scatter Plot of Phenotype Proportion of C4 against Fibrosis Score for ICM ROIs.

\[\text{Prop. C4}= \beta_{\text{Patient ID}}-0.004\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0032 0.0005 13.8738 6.1963 0.0000
Fibrosis Score -0.0044 0.0011 9.6232 -3.9837 0.0028

Mast

Figure: Scatter Plot of Phenotype Proportion of Mast against Fibrosis Score for ICM ROIs.

\[\text{Prop. Mast}= \beta_{\text{Patient ID}}-0.004\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0027 1e-04 6 25.9434 0
Fibrosis Score -0.0040 3e-04 6 -15.8023 0
All results

C1

NULL
Figure: Scatter Plot of Phenotype Proportion of C1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. C1}= \beta_{\text{Patient ID}}-0.294\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.2615 0.0361 16.8846 7.2339 0
Fibrosis Score -0.2943 0.0497 41.1916 -5.9255 0

C2b

NULL
Figure: Scatter Plot of Phenotype Proportion of C2b against Fibrosis Score for ICM ROIs.

\[\text{Prop. C2b}= \beta_{\text{Patient ID}}-0.026\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0193 0.0020 33 9.5336 0
Fibrosis Score -0.0259 0.0042 33 -6.1298 0

C3a

NULL
Figure: Scatter Plot of Phenotype Proportion of C3a against Fibrosis Score for ICM ROIs.

\[\text{Prop. C3a}= \beta_{\text{Patient ID}}-0.126\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0936 0.0211 20.4828 4.4384 2e-04
Fibrosis Score -0.1264 0.0346 32.2587 -3.6589 9e-04

C3b

NULL
Figure: Scatter Plot of Phenotype Proportion of C3b against Fibrosis Score for ICM ROIs.

\[\text{Prop. C3b}= \beta_{\text{Patient ID}}+0\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0336 0.0217 26.1989 1.5522 0.1326
Fibrosis Score -0.0002 0.0384 27.5266 -0.0053 0.9958

C4

NULL
Figure: Scatter Plot of Phenotype Proportion of C4 against Fibrosis Score for ICM ROIs.

\[\text{Prop. C4}= \beta_{\text{Patient ID}}+0.007\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0085 0.0130 27.1469 0.6559 0.5174
Fibrosis Score 0.0073 0.0253 28.6426 0.2905 0.7735

CD45RO

NULL
Figure: Scatter Plot of Phenotype Proportion of CD45RO against Fibrosis Score for ICM ROIs.

\[\text{Prop. CD45RO}= \beta_{\text{Patient ID}}+0.015\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0145 0.0123 20.3161 1.1829 0.2505
Fibrosis Score 0.0150 0.0176 36.8162 0.8517 0.3999

CytoT

NULL
Figure: Scatter Plot of Phenotype Proportion of CytoT against Fibrosis Score for ICM ROIs.

\[\text{Prop. CytoT}= \beta_{\text{Patient ID}}+0.009\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0008 0.0029 20.5274 -0.2648 0.7938
Fibrosis Score 0.0092 0.0057 21.1693 1.6060 0.1231

Endo

NULL
Figure: Scatter Plot of Phenotype Proportion of Endo against Fibrosis Score for ICM ROIs.

\[\text{Prop. Endo}= \beta_{\text{Patient ID}}+0.019\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0380 0.0127 23.2714 3.0050 0.0063
Fibrosis Score 0.0188 0.0197 44.2865 0.9529 0.3458

Fib1

NULL
Figure: Scatter Plot of Phenotype Proportion of Fib1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fib1}= \beta_{\text{Patient ID}}-0.143\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.3695 0.0368 33.1957 10.0315 0.0000
Fibrosis Score -0.1432 0.0666 46.7451 -2.1497 0.0368

Fib2

NULL
Figure: Scatter Plot of Phenotype Proportion of Fib2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fib2}= \beta_{\text{Patient ID}}+0.116\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0211 0.0288 27.1048 -0.7306 0.4713
Fibrosis Score 0.1164 0.0555 31.2934 2.0988 0.0440

Fib3

NULL
Figure: Scatter Plot of Phenotype Proportion of Fib3 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fib3}= \beta_{\text{Patient ID}}+0.024\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0019 0.0047 33.0982 0.4080 0.6859
Fibrosis Score 0.0238 0.0093 39.7807 2.5454 0.0149

Fibrocyte

NULL
Figure: Scatter Plot of Phenotype Proportion of Fibrocyte against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fibrocyte}= \beta_{\text{Patient ID}}-0.041\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0272 0.0143 16.3754 1.8978 0.0755
Fibrosis Score -0.0406 0.0253 18.9846 -1.6076 0.1244

Fibrocyte2

NULL
Figure: Scatter Plot of Phenotype Proportion of Fibrocyte2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Fibrocyte2}= \beta_{\text{Patient ID}}+0.029\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0042 0.0083 29.7887 0.5093 0.6143
Fibrosis Score 0.0295 0.0140 43.9558 2.1052 0.0410

HypoEndo

NULL
Figure: Scatter Plot of Phenotype Proportion of HypoEndo against Fibrosis Score for ICM ROIs.

\[\text{Prop. HypoEndo}= \beta_{\text{Patient ID}}+0.039\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0021 0.0103 23.6431 -0.2045 0.8397
Fibrosis Score 0.0389 0.0191 29.3617 2.0328 0.0512

HypoEndo1

NULL
Figure: Scatter Plot of Phenotype Proportion of HypoEndo1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. HypoEndo1}= \beta_{\text{Patient ID}}+0.068\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0130 0.0184 20.2964 0.7052 0.4887
Fibrosis Score 0.0677 0.0298 40.4841 2.2718 0.0285

LymphEndo

NULL
Figure: Scatter Plot of Phenotype Proportion of LymphEndo against Fibrosis Score for ICM ROIs.

\[\text{Prop. LymphEndo}= \beta_{\text{Patient ID}}+0.019\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0036 0.0066 17.7452 -0.5508 0.5886
Fibrosis Score 0.0194 0.0113 18.9739 1.7105 0.1035

M2

NULL
Figure: Scatter Plot of Phenotype Proportion of M2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. M2}= \beta_{\text{Patient ID}}+0.065\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0014 0.011 25.7092 -0.1295 0.8980
Fibrosis Score 0.0647 0.018 42.7600 3.5855 0.0009

MonMac

NULL
Figure: Scatter Plot of Phenotype Proportion of MonMac against Fibrosis Score for ICM ROIs.

\[\text{Prop. MonMac}= \beta_{\text{Patient ID}}-0.003\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0119 0.0342 7.7606 0.3470 0.7378
Fibrosis Score -0.0025 0.0593 7.8998 -0.0423 0.9673

Neutrophil1

NULL
Figure: Scatter Plot of Phenotype Proportion of Neutrophil1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Neutrophil1}= \beta_{\text{Patient ID}}+0.081\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0270 0.0092 25.4786 -2.9389 0.0069
Fibrosis Score 0.0805 0.0176 32.0778 4.5772 0.0001

Neutrophil2

NULL
Figure: Scatter Plot of Phenotype Proportion of Neutrophil2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. Neutrophil2}= \beta_{\text{Patient ID}}+0.003\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0033 0.0061 13.1889 0.5356 0.6012
Fibrosis Score 0.0032 0.0111 14.3103 0.2841 0.7804

PopS100+

NULL
Figure: Scatter Plot of Phenotype Proportion of PopS100+ against Fibrosis Score for ICM ROIs.

\[\text{Prop. PopS100+}= \beta_{\text{Patient ID}}-0.011\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0232 0.0110 28.6068 2.1005 0.0446
Fibrosis Score -0.0110 0.0186 42.5010 -0.5907 0.5578

PopSMA+Fx13a+

NULL
Figure: Scatter Plot of Phenotype Proportion of PopSMA+Fx13a+ against Fibrosis Score for ICM ROIs.

\[\text{Prop. PopSMA+Fx13a+}= \beta_{\text{Patient ID}}+0.009\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0020 0.0051 25.7411 0.3918 0.6984
Fibrosis Score 0.0085 0.0089 30.7895 0.9586 0.3452

ResMac

NULL
Figure: Scatter Plot of Phenotype Proportion of ResMac against Fibrosis Score for ICM ROIs.

\[\text{Prop. ResMac}= \beta_{\text{Patient ID}}+0.103\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0124 0.0122 35.9731 1.0212 0.3140
Fibrosis Score 0.1027 0.0235 46.1118 4.3641 0.0001

SMA1

NULL
Figure: Scatter Plot of Phenotype Proportion of SMA1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. SMA1}= \beta_{\text{Patient ID}}+0.224\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0166 0.0380 36.0229 0.4372 0.6645
Fibrosis Score 0.2244 0.0692 46.8917 3.2416 0.0022

SMA3

NULL
Figure: Scatter Plot of Phenotype Proportion of SMA3 against Fibrosis Score for ICM ROIs.

\[\text{Prop. SMA3}= \beta_{\text{Patient ID}}-0.034\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0302 0.0120 13.6419 2.5218 0.0248
Fibrosis Score -0.0339 0.0219 15.9482 -1.5471 0.1414

TReg

NULL
Figure: Scatter Plot of Phenotype Proportion of TReg against Fibrosis Score for ICM ROIs.

\[\text{Prop. TReg}= \beta_{\text{Patient ID}}-0.015\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0118 0.0060 7.2506 1.9619 0.0891
Fibrosis Score -0.0153 0.0105 7.1527 -1.4593 0.1870

Th

NULL
Figure: Scatter Plot of Phenotype Proportion of Th against Fibrosis Score for ICM ROIs.

\[\text{Prop. Th}= \beta_{\text{Patient ID}}+0.002\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0035 0.0081 18.9245 0.4319 0.6707
Fibrosis Score 0.0018 0.0145 18.9707 0.1273 0.9000

pDC

NULL
Figure: Scatter Plot of Phenotype Proportion of pDC against Fibrosis Score for ICM ROIs.

\[\text{Prop. pDC}= \beta_{\text{Patient ID}}+0.004\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0005 0.0014 24 0.3401 0.7368
Fibrosis Score 0.0037 0.0025 24 1.4737 0.1536

C2a

NULL
Figure: Scatter Plot of Phenotype Proportion of C2a against Fibrosis Score for ICM ROIs.

\[\text{Prop. C2a}= \beta_{\text{Patient ID}}-0.282\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.1886 0.0341 26.5781 5.5250 0
Fibrosis Score -0.2821 0.0575 32.6133 -4.9059 0

B

NULL
Figure: Scatter Plot of Phenotype Proportion of B against Fibrosis Score for ICM ROIs.

\[\text{Prop. B}= \beta_{\text{Patient ID}}+0.018\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0036 0.0137 15.1840 -0.2652 0.7944
Fibrosis Score 0.0182 0.0267 14.7231 0.6796 0.5073

M1

NULL
Figure: Scatter Plot of Phenotype Proportion of M1 against Fibrosis Score for ICM ROIs.

\[\text{Prop. M1}= \beta_{\text{Patient ID}}-0.001\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0044 0.0026 7.9386 1.7137 0.1252
Fibrosis Score -0.0011 0.0048 9.6178 -0.2238 0.8276

PopCD45RO+HLADR+

NULL
Figure: Scatter Plot of Phenotype Proportion of PopCD45RO+HLADR+ against Fibrosis Score for ICM ROIs.

\[\text{Prop. PopCD45RO+HLADR+}= \beta_{\text{Patient ID}}+0.009\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0010 0.0090 11.1500 0.1166 0.9092
Fibrosis Score 0.0091 0.0169 10.3971 0.5369 0.6027

Activated

Th

NULL
Figure: Scatter Plot of Phenotype Proportion of Activated against Fibrosis Score for ICM ROIs.
Figure: Scatter Plot of Phenotype Proportion of Th against Fibrosis Score for ICM ROIs.

\[\text{Prop. Activated Th}= \beta_{\text{Patient ID}}+1.115\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.6093 0.4689 2 -1.2995 0.3234
Fibrosis Score 1.1147 0.8189 2 1.3612 0.3065

Mast

NULL
Figure: Scatter Plot of Phenotype Proportion of Mast against Fibrosis Score for ICM ROIs.

\[\text{Prop. Mast}= \beta_{\text{Patient ID}}-0.004\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) 0.0039 0.0019 5.3626 2.1109 0.0848
Fibrosis Score -0.0037 0.0035 6.8168 -1.0472 0.3307

SMA2

NULL
Figure: Scatter Plot of Phenotype Proportion of SMA2 against Fibrosis Score for ICM ROIs.

\[\text{Prop. SMA2}= \beta_{\text{Patient ID}}+0.086\times \text{Fribrosis Score}\]

Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.0139 0.0137 12.5248 -1.0118 0.3308
Fibrosis Score 0.0858 0.0292 13.5451 2.9338 0.0112

6 Conclusion

In addressing Key Goal 1 (Section 3.1), investigation of phenotype proportion across Fibrotic Zones demonstrated a significant difference in mean phenotype proportion between at least one pair of Fibrotic Zones for each of the following phenotypes within each aetiology:

  • ICM: C1, C2b, C3a, CD45RO, Fib2, Fib3, Fibrocyte2, M2, PopSMA+Fx13a+, ResMac, SMA1, SMA3, C2a, Activated Th and SMA2.

  • DCM: C1, C2a, CD45RO, Fib3, M2, PopS100+, PopSMA+Fx13a+, ResMac, SMA1, C4, LymphEndo, SMA3 and Mast.

This reveals that phenotype proportion varies significantly between Fibrotic Zones (for at least one pair of zones) for each of the above phenotypes in their relative disease aetiology.

Regarding Key Goal 2 (Section 3.2), based on significant results from Key Goal 1 (Section 5.2) comparison of phenotype proportion within Fibrotic Zones between Aetiologies revealed significant differences in M2, LymphEndo, Fib3 and C3b in the IF Fibrotic Zone and Fib3, LymphEndo and C3b in the RF Fibrotic Zone.

For Key Goal 3 (Section 3.3), linear regression revealed the following significant linear relationships between phenotype abundance and Fibrosis Score within each Aetiology:

  • ICM:

    • Positive: Neutrophil1.

    • Negative: C1, C2a, C3a, Fib1 and C2b.

  • DCM:

    • Positive: M2.

    • Negative: C1, C2a, C3a, Fib1, C2b, C4 and Mast.

Therefore comparatively, within both ICM and DCM, we see negative linear relationships between phenotype abundance and Fibrosis Score within C1, C2a, C3a, Fib1 and C2b.

For further analysis and investigation, additional code details relating to all results are in the appendix.

7 Appendix

Exploratory Data Analysis

The following column graph demonstrates cell proportion within each disease Aetiology for each Fibrotic Zone and Cellular Phenotype. From the graph highlights that:

  • across all zones and both aetiologies, the proportion of the Fib1 phenotype is high.

  • in both aetiologies as Fibrotic Zone increases, the proportion of:

    • SMA1 decreases.

    • B1 increases.

The graph also details the number of samples within each category, to highlight the differences in sample numbers based on individual patient data. Evidently samples are most abundant in the IF Fibrotic Zone for ICM and DCM, as well as the RF Zone for ICM.

Code: EDA Plot
counts = cell_proportion_df %>% 
  group_by(aetiology, fibrotic_zone, annotated_metacluster) %>%
  summarise(avg_cell_proportion = mean(phenotype_cell_proportion), count = n(), .groups = 'drop') 

ggplot(counts) + 
  geom_bar(aes(x = avg_cell_proportion, y = annotated_metacluster, fill = count),
           stat='identity', colour='black') + 
  scale_fill_gradient2(low=lightorange, high=orange) +
  coord_flip() + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1, size = 6)) + 
  facet_grid(fibrotic_zone ~ aetiology) +
  ylab('Cellular Phenotype') +
  xlab('Cell Proportion') +
  labs(fill = 'Number of Samples') +
  scale_x_continuous(labels = scales::percent) +
  theme(plot.background = element_rect(fill = "#ffffff",
                                               linewidth = 0),
                panel.border = element_rect(colour = "black", 
                                            fill=NA),
                legend.box.background = element_rect(colour = "black"),
                axis.title = element_text(face="bold"), 
                plot.title = element_text(face="bold", 
                                          size = 14, 
                                          hjust = 0.5))